package com.qr.service.wmyw.impl;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.mapping.ResultMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.krui.helper.db.DBHelper;
import cn.krui.helper.db.DataPage;
import com.qr.bean.wmyw.QrSysUsers;
import com.qr.bean.wmyw.QrSysUsersView;
import com.qr.controller.WmywBase;
import com.qr.mapper.wmyw.QrSysUsersMapper;
import com.qr.mapper.wmyw.QrSysUsersMapperView;
import com.qr.service.wmyw.QrSysUsersService;
//import org.apache.dubbo.config.annotation.Service;

/**
 * @author: zc
 * email: zc8023zs@163.com
 * create_time: 2020/8/13 10:27:18
 */
@Service
//@Service(version = "1.0.0",group="dubbo")
public class QrSysUsersServiceImpl implements QrSysUsersService{
    @Autowired
    private QrSysUsersMapper qrSysUsersMapper;

    @Autowired
    private QrSysUsersMapperView qrSysUsersMapperView;
    
    @Autowired
    private DBHelper dbHelper;

    /**
     * 构造查询条件
     */
    private QueryWrapper<QrSysUsers> InitWrapper(QrSysUsers where){
        QueryWrapper<QrSysUsers> whereWrapper = new QueryWrapper<QrSysUsers>();
        if(where.getId()!=null){
			whereWrapper.eq("id",where.getId());
		}
        if(where.getDept_id()!=null){
			whereWrapper.eq("dept_id",where.getDept_id());
		}
        if(where.getRole_id()!=null){
			whereWrapper.eq("role_id",where.getRole_id());
		}
        if(where.getUser_number()!=null){
			whereWrapper.eq("user_number",where.getUser_number());
		}
        if(where.getUser_name()!=null){
			whereWrapper.eq("user_name",where.getUser_name());
		}
        if(where.getReal_name()!=null){
			whereWrapper.eq("real_name",where.getReal_name());
		}
        if(where.getPasswd()!=null){
			whereWrapper.eq("passwd",where.getPasswd());
		}
        if(where.getGender()!=null){
			whereWrapper.eq("gender",where.getGender());
		}
        if(where.getMobile()!=null){
			whereWrapper.eq("mobile",where.getMobile());
		}
        if(where.getEmail()!=null){
			whereWrapper.eq("email",where.getEmail());
		}
        if(where.getStatus()!=null){
			whereWrapper.eq("status",where.getStatus());
		}
        if(where.getCreate_ip()!=null){
			whereWrapper.eq("create_ip",where.getCreate_ip());
		}
        if(where.getCreate_time()!=null){
			whereWrapper.eq("create_time",where.getCreate_time());
		}
        if(where.getLast_ip()!=null){
			whereWrapper.eq("last_ip",where.getLast_ip());
		}
        if(where.getLast_visit()!=null){
			whereWrapper.eq("last_visit",where.getLast_visit());
		}
        if(where.getLogin_count()!=null){
			whereWrapper.eq("login_count",where.getLogin_count());
		}
        if(where.getInit_default()!=null){
			whereWrapper.eq("init_default",where.getInit_default());
		}
        if(where.getError_count()!=null){
			whereWrapper.eq("error_count",where.getError_count());
		}
        if(where.getToken()!=null){
			whereWrapper.eq("token",where.getToken());
		}
        if(where.getOld_token()!=null){
			whereWrapper.eq("old_token",where.getOld_token());
		}
        if(where.getNeed_new_pwd()!=null){
			whereWrapper.eq("need_new_pwd",where.getNeed_new_pwd());
		}
        if(where.getGroup_id()!=null){
			whereWrapper.eq("group_id",where.getGroup_id());
		}
        if(where.getUser_type()!=null){
			whereWrapper.eq("user_type",where.getUser_type());
		}
        if(where.getMp_c_id()!=null){
			whereWrapper.eq("mp_c_id",where.getMp_c_id());
		}
        if(where.getMp_b_id()!=null){
			whereWrapper.eq("mp_b_id",where.getMp_b_id());
		}
        if(where.getMp_r_id()!=null){
			whereWrapper.eq("mp_r_id",where.getMp_r_id());
		}
        if(where.getWx_pay_id()!=null){
			whereWrapper.eq("wx_pay_id",where.getWx_pay_id());
		}
        if(where.getWx_pay_secret()!=null){
			whereWrapper.eq("wx_pay_secret",where.getWx_pay_secret());
		}
        if(where.getRun_type()!=null){
			whereWrapper.eq("run_type",where.getRun_type());
		}
        if(where.getCommission_rate()!=null){
			whereWrapper.eq("commission_rate",where.getCommission_rate());
		}
        if(where.getDelivery_radius()!=null){
			whereWrapper.eq("delivery_radius",where.getDelivery_radius());
		}
        if(where.getVersion_id()!=null){
			whereWrapper.eq("version_id",where.getVersion_id());
		}
        return whereWrapper;
    }

    private QueryWrapper<QrSysUsersView> InitWrapperView(QrSysUsersView where){
        QueryWrapper<QrSysUsersView> whereWrapper = new QueryWrapper<QrSysUsersView>();
        if(where.getId()!=null){
			whereWrapper.eq("id",where.getId());
		}
        if(where.getDept_id()!=null){
			whereWrapper.eq("dept_id",where.getDept_id());
		}
        if(where.getRole_id()!=null){
			whereWrapper.eq("role_id",where.getRole_id());
		}
        if(where.getUser_number()!=null){
			whereWrapper.eq("user_number",where.getUser_number());
		}
        if(where.getUser_name()!=null){
			whereWrapper.eq("user_name",where.getUser_name());
		}
        if(where.getReal_name()!=null){
			whereWrapper.eq("real_name",where.getReal_name());
		}
        if(where.getPasswd()!=null){
			whereWrapper.eq("passwd",where.getPasswd());
		}
        if(where.getGender()!=null){
			whereWrapper.eq("gender",where.getGender());
		}
        if(where.getMobile()!=null){
			whereWrapper.eq("mobile",where.getMobile());
		}
        if(where.getEmail()!=null){
			whereWrapper.eq("email",where.getEmail());
		}
        if(where.getStatus()!=null){
			whereWrapper.eq("status",where.getStatus());
		}
        if(where.getCreate_ip()!=null){
			whereWrapper.eq("create_ip",where.getCreate_ip());
		}
        if(where.getCreate_time()!=null){
			whereWrapper.eq("create_time",where.getCreate_time());
		}
        if(where.getLast_ip()!=null){
			whereWrapper.eq("last_ip",where.getLast_ip());
		}
        if(where.getLast_visit()!=null){
			whereWrapper.eq("last_visit",where.getLast_visit());
		}
        if(where.getLogin_count()!=null){
			whereWrapper.eq("login_count",where.getLogin_count());
		}
        if(where.getInit_default()!=null){
			whereWrapper.eq("init_default",where.getInit_default());
		}
        if(where.getError_count()!=null){
			whereWrapper.eq("error_count",where.getError_count());
		}
        if(where.getToken()!=null){
			whereWrapper.eq("token",where.getToken());
		}
        if(where.getOld_token()!=null){
			whereWrapper.eq("old_token",where.getOld_token());
		}
        if(where.getNeed_new_pwd()!=null){
			whereWrapper.eq("need_new_pwd",where.getNeed_new_pwd());
		}
        if(where.getGroup_id()!=null){
			whereWrapper.eq("group_id",where.getGroup_id());
		}
        if(where.getUser_type()!=null){
			whereWrapper.eq("user_type",where.getUser_type());
		}
        if(where.getMp_c_id()!=null){
			whereWrapper.eq("mp_c_id",where.getMp_c_id());
		}
        if(where.getMp_b_id()!=null){
			whereWrapper.eq("mp_b_id",where.getMp_b_id());
		}
        if(where.getMp_r_id()!=null){
			whereWrapper.eq("mp_r_id",where.getMp_r_id());
		}
        if(where.getWx_pay_id()!=null){
			whereWrapper.eq("wx_pay_id",where.getWx_pay_id());
		}
        if(where.getWx_pay_secret()!=null){
			whereWrapper.eq("wx_pay_secret",where.getWx_pay_secret());
		}
        if(where.getRun_type()!=null){
			whereWrapper.eq("run_type",where.getRun_type());
		}
        if(where.getCommission_rate()!=null){
			whereWrapper.eq("commission_rate",where.getCommission_rate());
		}
        if(where.getDelivery_radius()!=null){
			whereWrapper.eq("delivery_radius",where.getDelivery_radius());
		}
        if(where.getVersion_id()!=null){
			whereWrapper.eq("version_id",where.getVersion_id());
		}
        return whereWrapper;
    }

    /**
     * 城市运营中心新增
     * @param model 城市运营中心实体
     * @return 影响行数
     */
	@Override
    public Integer add(QrSysUsers model){
        return qrSysUsersMapper.insert(model);
    }

    /**
     * 城市运营中心修改byid
     * @param model 城市运营中心实体
     * @return 影响行数
     */
	@Override
    public Integer update(QrSysUsers model) {
        return qrSysUsersMapper.updateById(model);
    }

    /**
     * 城市运营中心修改by条件
     * @param model 城市运营中心实体
     * @param where 城市运营中心条件
     * @return 影响行数
     */
	@Override
    public Integer update(QrSysUsers model, Wrapper<QrSysUsers> where) {
        return qrSysUsersMapper.update(model, where);
    }

    /**
     * 城市运营中心修改by条件-自动封装Wrapper
     * @param model 城市运营中心实体
     * @return 影响行数
     */
	@Override
    public Integer update(QrSysUsers model, QrSysUsers where) {
        Wrapper<QrSysUsers> wrapper = InitWrapper(where);
        return update(model, wrapper);
    }

    /**
     * 城市运营中心修改bySQL *version_id = newVersion where version_id = oldVersion
     * @param fields 修改的数据 col1=xx,col2=yy
     * @param where 参数化条件 col1=#{col1}
     * @param params 条件参数 col1=xx
     * @return 影响行数
     */
	@Override
    public Integer update(Map<String, Object> fields, String where, Map<String, Object> params) {
        return dbHelper.update("qr_sys_users", fields, where, params);
    }

    /**
     * 城市运营中心删除byid
     * @param id 城市运营中心主键
     * @return 影响行数
     */
	@Override
    public Integer del(int id) {
        return qrSysUsersMapper.deleteById(id);
    }

    /**
     * 城市运营中心删除by条件
     * @param where 城市运营中心条件
     * @return 影响行数
     */
	@Override
    public Integer del(Wrapper<QrSysUsers> where) {
        return qrSysUsersMapper.delete(where);
    }

    /**
     * 城市运营中心删除by条件-自动封装Wrapper
     * @param where 城市运营中心条件
     * @return 影响行数
     */
    @Override
    public Integer del(QrSysUsers where) { 
        Wrapper<QrSysUsers> wrapper = InitWrapper(where);
        return del(wrapper);
    }

    /**
     * 城市运营中心批量删除byid
     * @param ids 城市运营中心主键集合
     * @return 影响行数
     */
	@Override
    public Integer del(List<Integer> ids){
        return qrSysUsersMapper.deleteBatchIds(ids);
    }

    /**
     * 城市运营中心批量删除bymap条件
     * @param map 城市运营中心map条件
     * @return 影响行数
     */
	@Override
    public Integer del(Map<String,Object> map){
        return qrSysUsersMapper.deleteByMap(map);
    }

    /**
     * 城市运营中心详情byid
     * @param id 城市运营中心主键
     * @return 城市运营中心详情
     */
	@Override
    public QrSysUsersView info(int id){
        return qrSysUsersMapperView.selectById(id);
    }

    /**
     * 城市运营中心详情by条件
     * @param where 城市运营中心条件
     * @return 城市运营中心详情
     */
	@Override
    public QrSysUsersView info(Wrapper<QrSysUsersView> where){
        return qrSysUsersMapperView.selectOne(where);
    }

    /**
     * 城市运营中心详情by条件-自动封装Wrapper
     * @param where 城市运营中心条件
     * @return 城市运营中心详情
     */
	@Override
    public QrSysUsersView info(QrSysUsersView where) {
        Wrapper<QrSysUsersView> wrapper = InitWrapperView(where);
        return info(wrapper);
    }

    /**
     * 城市运营中心详情bySQL
     * @param columns  列名col1,col2,col3^
     * @param where 条件 col1=#{col1}
     * @param params col1:xx
     * @param mappings col1->col1
     * @return
     */
	@Override
    public QrSysUsers info(String columns, String where, Map<String, Object> params, ResultMapping mappings) {
        return dbHelper.selectOne(columns, "qr_sys_users", where, params, QrSysUsers.class, mappings);
    }

    /**
     * 城市运营中心批量查询byid
     * @param ids 城市运营中心主键集合
     * @return 城市运营中心列表
     */
	@Override
    public List<QrSysUsersView> select(List<Integer> ids){
        return qrSysUsersMapperView.selectBatchIds(ids);
    }

    /**
     * 城市运营中心批量查询by条件
     * @param where 城市运营中心条件
     * @return 城市运营中心列表
     */
	@Override
    public List<QrSysUsersView> select(Wrapper<QrSysUsersView> where){
        return qrSysUsersMapperView.selectList(where);
    }

    /**
     * 城市运营中心批量查询by条件-自动封装Wrapper
     * @param where 城市运营中心条件
     * @return 城市运营中心列表
     */
    @Override
    public List<QrSysUsersView> select(QrSysUsersView where) {
        Wrapper<QrSysUsersView> wrapper = InitWrapperView(where);		
        return select(wrapper);
    }

    /**
     * 城市运营中心批量查询bymap条件
     * @param map 城市运营中心map条件
     * @return 城市运营中心列表
     */
	@Override
    public List<QrSysUsersView> select(Map<String,Object> map){
        return qrSysUsersMapperView.selectByMap(map);
    }

    /**
     * 城市运营中心批量查询b条件分页
     * @param page 分页条件
     * @param where 查询条件
     * @return
     */
	@Override
    public IPage<QrSysUsersView> select(IPage<QrSysUsersView> page, Wrapper<QrSysUsersView> where){
        return qrSysUsersMapperView.selectPage(page, where);
    }

    /**
     * 城市运营中心批量查询b条件分页
     * @param page 分页条件
     * @param where 查询条件
     * @return
     */
    @Override
    public IPage<QrSysUsersView> select(IPage<QrSysUsersView> page, QrSysUsersView where) {
		Wrapper<QrSysUsersView> wrapper = InitWrapperView(where);		
        return select(page, wrapper);
    }

    /**
     * 城市运营中心查询记录数
     * @param where 查询条件
     * @return
     */
	@Override
    public Integer selectCount(Wrapper<QrSysUsersView> where){
        return qrSysUsersMapperView.selectCount(where);
    }

    /**
     * 城市运营中心查询记录数
     * @param where 查询条件
     * @return
     */
	@Override
    public Integer selectCount(QrSysUsersView where){
		Wrapper<QrSysUsersView> wrapper = InitWrapperView(where);
        return selectCount(wrapper);
    }

    /**
     * 城市运营中心批量查询bySQL条件分页
     * @param columns 列col1,col2,col3……
     * @param where 条件col1=#{col1} and col2=#{col2}
     * @param orderBy 排序字段
     * @param params 参数化 col1=xx
     * @param pageNumber 分页页码
     * @param pageSize 每页行数
     * @param mappings 查询列和实体映射
     * @return 分页之后的数据含总行数
     */
	@Override
    public DataPage<QrSysUsersView> select(String columns, String where, String orderBy, Map<String, Object> params, int pageNumber, int pageSize, ResultMapping mappings){
        return dbHelper.select(columns, "qr_sys_users", where, orderBy, params, pageNumber, pageSize, QrSysUsersView.class,mappings);
    }

    /**
     * 城市运营中心批量查询bySQL条件
     * @param columns 列col1,col2,col3……
     * @param where 条件col1=#{col1} and col2=#{col2}
     * @param params 参数化 col1=xx
     * @param mappings 查询列和实体映射
     * @return 栏目扩展列表
     */
	@Override
    public List<QrSysUsersView> select(String columns, String where, Map<String, Object> params, ResultMapping mappings){
        return dbHelper.select(columns,"qr_sys_users",where,params,QrSysUsersView.class,mappings);
    }
}